﻿//struct ListNode* createlist() {
//    struct ListNode* head = 0, * node = 0;
//    head = node = (struct ListNode*)malloc(sizeof(struct ListNode));
//    struct ListNode* last = 0;
//    fscanf(stdin, "%d", &node->data);
//    if (head->data == -1)
//        return NULL;
//    while (node->data != -1) {
//        struct ListNode* p = (struct ListNode*)malloc(sizeof(struct ListNode));
//        fscanf(stdin, "%d", &p->data);
//        node->next = p;
//        last = node;
//        node = p;
//    }
//    last->next = 0;
//    free(node);
//    return head;
//}
//struct ListNode* deleteeven(struct ListNode* head) {
//    struct ListNode* node = head;
//    struct ListNode* last = 0, * Next = 0;
//    while (head && head->data % 2 == 0) {
//        Next = head->next;
//        free(head);
//        head = Next;
//    }
//    node = head;
//    while (node) {
//        if (node->data % 2 == 0) {
//            Next = node->next;
//            last->next = Next;
//            free(node);
//            node = Next;
//            continue;
//        }
//        last = node;
//        node = node->next;
//    }
//    return head;
//}

//#include<stdlib.h>
//List Delete(List L, ElementType minD, ElementType maxD) {
//    int* nums = (int*)malloc(sizeof(int) * (L->Last + 1));
//    int position = -1;
//    for (int i = 0; i <= L->Last; i++) {
//        nums[i] = L->Data[i];
//    }
//    for (int i = 0; i <= L->Last; i++) {
//        if (nums[i] <= minD || nums[i] >= maxD) {
//            L->Data[++position] = nums[i];
//        }
//    }
//    L->Last = position;
//    free(nums);
//    return L;
//}

//#include <stdio.h>
//#include <stdlib.h>
//typedef int DataType;
//typedef struct List {
//    DataType* nums;
//    int position;
//}List;
//void Insert(List* L, DataType x) {
//    int a = 0;
//    for (int i = 0; i <= L->position; i++) {
//        if (L->nums[i] > x) {
//            for (int j = L->position; j >= i; j--) {
//                L->nums[j + 1] = L->nums[j];
//            }
//            L->nums[i] = x;
//            L->position++;
//            a = 1;
//            break;
//        }
//    }
//    if (!a) {
//        L->nums[++L->position] = x;
//    }
//}
//void Print(List* L) {
//    for (int i = 0; i <= L->position; i++) {
//        fprintf(stdout, "%d,", L->nums[i]);
//    }
//}
//int main() {
//    List* L = (List*)malloc(sizeof(List));
//    L->position = -1;
//    int n = 0;
//    DataType x = 0;
//    fscanf(stdin, "%d", &n);
//    L->nums = (DataType*)malloc(sizeof(DataType) + (n + 1));
//    for (int i = 0; i < n; i++) {
//        fscanf(stdin, "%d", L->nums + i);
//        L->position = i;
//    }
//    fscanf(stdin, "%d", &x);
//    Insert(L, x);
//    Print(L);
//    return 0;
//}

//#include <stdio.h>
//#include <stdlib.h>
//typedef int DataType;
//typedef struct Data {
//    DataType data;
//    struct List* next;
//}List;
//int n = 0;
//List* Creat() {
//    int x = 0;
//    List* head = 0, * front = 0, * node = 0;
//    head = node = (List*)malloc(sizeof(List));
//    scanf("%d", &n);
//    x = n;
//    if (!x) {
//        return NULL;
//    }
//    scanf("%d", &node->data);
//    while (--x) {
//        front = (List*)malloc(sizeof(List));
//        scanf("%d", &front->data);
//        node->next = front;
//        node = front;
//    }
//    node->next = 0;
//    return head;
//}
//List* Insert(List* head) {
//    List* node = head, * front = 0;
//    int k = 0, d = 0;
//    scanf("%d%d", &k, &d);
//    if (k < 0 || k > n) {
//        return head;
//    }
//    if (!k) {
//        node = (List*)malloc(sizeof(List));
//        node->data = d;
//        if (!n) {
//            node->next = 0;
//        }
//        else {
//            node->next = head;
//        }
//        n++;
//        return node;
//    }
//    while (--k) {
//        node = node->next;
//        if (k == 1) {
//            front = (List*)malloc(sizeof(List));
//            front->data = d;
//            front->next = node->next;
//            node->next = front;
//        }
//    }
//    n++;
//    return head;
//}
//List* Delete(List* head) {
//    List* node = head, * last = 0;
//    int k = 0;
//    scanf("%d", &k);
//    if (!n || k <= 0 || k > n) {
//        return head;
//    }
//    if (k == 1) {
//        node = head->next;
//        free(head);
//        n--;
//        return node;
//    }
//    while (--k) {
//        last = node;
//        node = node->next;
//    }
//    last->next = node->next;
//    free(node);
//    n--;
//    return head;
//}
//void Print(List* head) {
//    List* node = head;
//    while (node) {
//        fprintf(stdout, "%d ", node->data);
//        node = node->next;
//    }
//}
//int main() {
//    List* head = Creat();
//    int m = 0;
//    scanf("%d", &m);
//    while (m--) {
//        int x = 0;
//        scanf("%d", &x);
//        if (!x) {
//            head = Insert(head);
//        }
//        else {
//            head = Delete(head);
//        }
//    }
//    Print(head);
//    return 0;
//}